package com.mes.cloud.service.impl;

import com.mes.cloud.service.ValidatorService;
import com.mes.cloud.util.VadatorParam;
import org.springframework.stereotype.Service;

import javax.validation.constraints.NotNull;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
 * @ProjectName: cloud
 * @Package: com.mes.cloud.service.impl
 * @ClassName: LengthValidatorServiceImpl
 * @Author: xhy
 * @Description: 判断view页面的值的长度进行约束
 * 一般有 length[x,y]表示输入x到y之间的字符个数
 * @Date: 2019年9月23日15:17:54
 * @Version: 1.0
 */
@Service("length")
public class LengthValidatorServiceImpl implements ValidatorService {
    //private static final Pattern patterns = Pattern.compile("^[a-zA-Z0-9/d\\~\\!\\@\\#\\$\\%\\^\\&\\*\\_\\+\\{\\}\\:\\\"\\|\\<\\>\\?\\-\\= \\;\\'\\\\\\,\\.\\/]");
    private static final Pattern PATTERNS = Pattern.compile("^.{0,}$");
    @Override
    public String validator(@NotNull String type,@NotNull Object o, Map<String, Object> queryMap){
        //由于这里只是校验是否为空 可以在这里进行直接校验，
        // 其他的需要逻辑的可以同下面方法进行验证
        //下面这个方法是最终的校验方法 如果有动态的
        Matcher m = PATTERNS.matcher(o.toString());
        if (!m.matches()){
           return "请输入字符";
        }
       return VadatorParam.getLengthAndRange(type,o,true);
    }
}
